package org.jeecg.modules.bobo.common.util;



import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @program: jeecg-boot-parent
 * @description: 多功能utils
 * @author: 三千霜
 * @create: 2020-04-08 17:19
 */

public class BoboCommonUtils {
    //获取对象的属性值map
    public static <T> Map<String,String> getFieldByName(T t){
        //现在要获取字段day02b的值
        Field[] declaredFields = t.getClass().getDeclaredFields();
        Map<String,String> map=new HashMap<>();
        try {
            for (Field field : declaredFields) {
                //字段名称
                String name = field.getName();
                field.setAccessible(true);
                String value =String.valueOf(field.get(t));
                map.put(name, value);
            }
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return map;
    }
    //转换vo列表
    public static <T,K> List<T> pojoListToVoList(List<K> ks,Class<T> clazz){
        List<T>  ts=new ArrayList<>();
        T t=null;
        for (K k:ks
             ) {
            try {
                t=clazz.newInstance();
            } catch (InstantiationException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }
            BeanUtils.copyProperties(k, t);
            ts.add(t);
        }
        return ts;
    }
////    获取当前类的 类名
//    public static String getNowClassName(){
//        String clazz = this.getClass().getName();
//        return clazz;
//
//
//
//
//
//
//    }
////    获取当前方法
//    public static String getNowMethodName(){
//        String method = Thread.currentThread().getStackTrace()[1].getMethodName();
//        return method;
//    }
}
